2   id="motiondialer-ivrCampaign"
 
   3   class="page-layout simple tabbed"
 
   7   <div class="header md-accent-bg" layout="row" layout-align="start center">
 
   8     <div class="white-fg" layout="row" layout-align="start center" flex>
 
  10         class="goto-ivrCampaigns-button md-icon-button"
 
  11         aria-label="Go to ivrCampaigns"
 
  12         ng-click="vm.gotoIvrCampaigns()"
 
  14         translate-attr-aria-label="MOTIONDIALER.GO_TO_IVRCAMPAIGNS"
 
  16         <md-icon md-font-icon="icon-arrow-left"></md-icon>
 
  19       <div layout="row" layout-align="start center">
 
  20         <div class="ivrCampaign-image" hide-xs>
 
  21           <img ng-src="assets/images/business/ivrCampaigns.jpg" />
 
  24         <div layout="column" layout-align="start start">
 
  26             #{{vm.ivrCampaign.id}}
 
  27             <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>
 
  29           <div class="subtitle secondary-text">
 
  30             <span translate="MOTIONDIALER.CREATED_AT"></span>
 
  31             <span>{{vm.ivrCampaign.createdAt | date:'medium'}}</span>
 
  37     <div ng-cloak ng-if="vm.crudPermissions.canEdit">
 
  39         ng-click="vm.clonedialog(vm.ivrCampaign, $event)"
 
  40         class="md-fab md-green-500-bg md-icon-button"
 
  44           ><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span
 
  46         <md-icon md-font-icon="icon-content-duplicate"></md-icon>
 
  52         ng-click="vm.listadddialog(vm.ivrCampaign, $event)"
 
  53         class="md-fab md-green-500-bg md-icon-button"
 
  57           ><span translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN"></span
 
  59         <md-icon md-font-icon="icon-format-list-numbers"></md-icon>
 
  65         ng-click="vm.blacklistadddialog(vm.ivrCampaign, $event)"
 
  66         class="md-fab md-warn md-icon-button"
 
  67         aria-label="blacklistadd"
 
  70           ><span translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN"></span
 
  72         <md-icon md-font-icon="icon-block-helper"></md-icon>
 
  76     <div ng-cloak ng-if="vm.crudPermissions.canEdit">
 
  78         ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)"
 
  79         class="md-fab md-warn md-icon-button"
 
  80         aria-label="resetlist"
 
  83           ><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span
 
  85         <md-icon md-font-icon="icon-restore"></md-icon>
 
  91         ng-click="vm.gotogoto(vm.ivrCampaign, $event)"
 
  92         class="md-fab md-warn md-icon-button"
 
  96           ><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></span
 
  98         <md-icon md-font-icon="icon-cast"></md-icon>
 
 104         ng-click="vm.saveIvrCampaign()"
 
 105         ng-if="vm.crudPermissions.canEdit"
 
 106         class="send-button md-accent md-raised"
 
 107         ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"
 
 108         translate="MOTIONDIALER.SAVE"
 
 109         translate-attr-aria-label="MOTIONDIALER.SAVE"
 
 118   <div class="content">
 
 120       md-selected="vm.selectedTab"
 
 121       md-stretch-tabs="always"
 
 128           <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>
 
 132             class="ivrCampaign-detail-form-container general md-background-bg md-whiteframe-1dp"
 
 134             <div class="pb-16" layout="row" layout-align="start center">
 
 135               <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">
 
 139             <form name="generalForm" novalidate>
 
 140               <md-input-container class="md-block">
 
 141                 <label translate="MOTIONDIALER.NAME">Name</label>
 
 145                   ng-model="vm.ivrCampaign.name"
 
 146                   ng-pattern="/^[A-Za-z0-9\.\_]+$/i"
 
 153                   <span translate="MOTIONDIALER.HELP.NAME"></span>
 
 156                   ng-messages="generalForm['name'].$error"
 
 157                   ng-show="generalForm['name'].$touched"
 
 160                   <div ng-message="required">
 
 161                     <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED"
 
 162                       >Name field is required</span
 
 165                   <div ng-message="pattern">
 
 167                       translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN"
 
 168                       translate-values="{ regex: '/^[A-Za-z0-9\.\_]+$/i' }"
 
 169                       >Name must be valid pattern
 
 173               </md-input-container>
 
 174               <md-input-container class="md-block">
 
 176                   ng-model="vm.ivrCampaign.active"
 
 178                   ng-disabled="!vm.crudPermissions.canEdit"
 
 179                   ><span translate="MOTIONDIALER.ACTIVE"
 
 183               </md-input-container>
 
 184               <md-input-container class="md-block">
 
 185                 <label translate="MOTIONDIALER.TRUNK">Trunk</label>
 
 188                   ng-model="vm.ivrCampaign.TrunkId"
 
 190                   ng-disabled="!vm.crudPermissions.canEdit"
 
 193                     ng-value="TrunkId.id"
 
 194                     ng-repeat="TrunkId in vm.trunks"
 
 195                     ng-disabled="TrunkId.canSelect === false"
 
 196                     >{{ TrunkId.name }}</md-option
 
 200                   ng-messages="generalForm['TrunkId'].$error"
 
 201                   ng-show="generalForm['TrunkId'].$touched"
 
 204                   <div ng-message="required">
 
 205                     <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED"
 
 206                       >Trunk field is required</span
 
 210               </md-input-container>
 
 211               <md-input-container class="md-block">
 
 212                 <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>
 
 215                   ng-model="vm.ivrCampaign.TrunkBackupId"
 
 216                   ng-disabled="!vm.crudPermissions.canEdit"
 
 218                   <md-option ng-value="null">None</md-option>
 
 220                     ng-value="TrunkBackupId.id"
 
 221                     ng-repeat="TrunkBackupId in vm.trunks"
 
 222                     ng-disabled="TrunkBackupId.canSelect === false"
 
 223                     >{{ TrunkBackupId.name }}</md-option
 
 227                   ng-messages="generalForm['TrunkBackupId'].$error"
 
 228                   ng-show="generalForm['TrunkBackupId'].$touched"
 
 231                   <div ng-message="required">
 
 232                     <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED"
 
 233                       >BackupTrunk field is required</span
 
 237               </md-input-container>
 
 238               <md-input-container class="md-block">
 
 239                 <label translate="MOTIONDIALER.INTERVAL">Interval</label>
 
 242                   ng-model="vm.ivrCampaign.IntervalId"
 
 244                   ng-disabled="!vm.crudPermissions.canEdit"
 
 247                     ng-value="IntervalId.id"
 
 248                     ng-repeat="IntervalId in vm.interval"
 
 249                     ng-disabled="IntervalId.canSelect === false"
 
 250                     >{{ IntervalId.name }}</md-option
 
 254                   ng-messages="generalForm['IntervalId'].$error"
 
 255                   ng-show="generalForm['IntervalId'].$touched"
 
 258                   <div ng-message="required">
 
 259                     <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED"
 
 260                       >Interval field is required</span
 
 264               </md-input-container>
 
 265               <md-input-container class="md-block">
 
 266                 <label translate="MOTIONDIALER.CHECKDUPLICATE"
 
 267                   >CheckDuplicate</label
 
 270                   name="dialCheckDuplicateType"
 
 271                   ng-model="vm.ivrCampaign.dialCheckDuplicateType"
 
 273                   ng-disabled="!vm.crudPermissions.canEdit"
 
 275                   <md-option ng-value="'always'">
 
 276                     {{ 'MOTIONDIALER.ALWAYS' | translate }}
 
 279                   <md-option ng-value="'never'">
 
 280                     {{ 'MOTIONDIALER.NEVER' | translate }}
 
 283                   <md-option ng-value="'onlyIfOpen'">
 
 284                     {{ 'MOTIONDIALER.ONLY_IF_OPEN' | translate }}
 
 288                   ng-messages="generalForm['dialCheckDuplicateType'].$error"
 
 289                   ng-show="generalForm['dialCheckDuplicateType'].$touched"
 
 292                   <div ng-message="required">
 
 294                       translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED"
 
 295                       >CheckDuplicate field is required</span
 
 299               </md-input-container>
 
 300               <md-input-container class="md-block">
 
 301                 <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>
 
 305                   ng-model="vm.ivrCampaign.dialCutDigit"
 
 309                   ng-disabled="!vm.crudPermissions.canEdit"
 
 313                   ng-messages="generalForm['dialCutDigit'].$error"
 
 314                   ng-show="generalForm['dialCutDigit'].$touched"
 
 317                   <div ng-message="required">
 
 318                     <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED"
 
 319                       >CutDigit field is required</span
 
 322                   <div ng-message="min">
 
 324                       translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 325                       >CutDigit must be a valid greater or equal than</span
 
 329                   <div ng-message="max">
 
 331                       translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 332                       >CutDigit must be a valid greater or equal than</span
 
 337               </md-input-container>
 
 338               <md-input-container class="md-block">
 
 339                 <label translate="MOTIONDIALER.DESCRIPTION">Description</label>
 
 343                   ng-model="vm.ivrCampaign.description"
 
 344                   ng-disabled="!vm.crudPermissions.canEdit"
 
 348                   ng-messages="generalForm['description'].$error"
 
 349                   ng-show="generalForm['description'].$touched"
 
 352                   <div ng-message="required">
 
 353                     <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED"
 
 354                       >Description field is required</span
 
 358               </md-input-container>
 
 365           <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>
 
 369             class="ivrCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp"
 
 371             <div class="pb-16" layout="row" layout-align="start center">
 
 372               <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">
 
 376             <form name="campaignForm" novalidate>
 
 377               <md-input-container class="md-block">
 
 378                 <label translate="MOTIONDIALER.CALLYSQUAREPROJECT"
 
 379                   >CallySquareProject</label
 
 382                   name="SquareProjectId"
 
 383                   ng-model="vm.ivrCampaign.SquareProjectId"
 
 386                   ng-disabled="!vm.crudPermissions.canEdit"
 
 389                     ng-value="SquareProjectId.id"
 
 390                     ng-repeat="SquareProjectId in vm.projects"
 
 391                     ng-disabled="SquareProjectId.canSelect === false"
 
 392                     >{{ SquareProjectId.name }}</md-option
 
 396                   ng-messages="campaignForm['SquareProjectId'].$error"
 
 397                   ng-show="campaignForm['SquareProjectId'].$touched"
 
 400                   <div ng-message="required">
 
 402                       translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED"
 
 403                       >CallySquareProject field is required</span
 
 407               </md-input-container>
 
 408               <md-input-container class="md-block">
 
 409                 <label translate="MOTIONDIALER.CONCURRENTCALLS"
 
 410                   >ConcurrentCalls</label
 
 415                   ng-model="vm.ivrCampaign.limitCalls"
 
 419                   ng-disabled="!vm.crudPermissions.canEdit"
 
 423                   <span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span>
 
 426                   ng-messages="campaignForm['limitCalls'].$error"
 
 427                   ng-show="campaignForm['limitCalls'].$touched"
 
 430                   <div ng-message="required">
 
 432                       translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED"
 
 433                       >ConcurrentCalls field is required</span
 
 436                   <div ng-message="min">
 
 438                       translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 439                       >ConcurrentCalls must be a valid greater or equal
 
 444                   <div ng-message="max">
 
 446                       translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 447                       >ConcurrentCalls must be a valid greater or equal
 
 453               </md-input-container>
 
 457             class="ivrCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp"
 
 459             <div class="pb-16" layout="row" layout-align="start center">
 
 460               <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">
 
 464             <form name="originateForm" novalidate>
 
 465               <md-input-container class="md-block">
 
 466                 <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME"
 
 467                   >OriginateCallerIdName</label
 
 471                   name="dialOriginateCallerIdName"
 
 472                   ng-model="vm.ivrCampaign.dialOriginateCallerIdName"
 
 474                   ng-disabled="!vm.crudPermissions.canEdit"
 
 479                     translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"
 
 483                   ng-messages="originateForm['dialOriginateCallerIdName'].$error"
 
 484                   ng-show="originateForm['dialOriginateCallerIdName'].$touched"
 
 487                   <div ng-message="required">
 
 489                       translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED"
 
 490                       >OriginateCallerIdName field is required</span
 
 494               </md-input-container>
 
 495               <md-input-container class="md-block">
 
 496                 <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER"
 
 497                   >OriginateCallerIdNumber</label
 
 501                   name="dialOriginateCallerIdNumber"
 
 502                   ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber"
 
 503                   ng-disabled="!vm.crudPermissions.canEdit"
 
 508                     translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"
 
 512                   ng-messages="originateForm['dialOriginateCallerIdNumber'].$error"
 
 513                   ng-show="originateForm['dialOriginateCallerIdNumber'].$touched"
 
 516                   <div ng-message="required">
 
 518                       translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED"
 
 519                       >OriginateCallerIdNumber field is required</span
 
 523               </md-input-container>
 
 524               <md-input-container class="md-block">
 
 525                 <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER"
 
 526                   >RandomLastDigitCallerIdNumber</label
 
 530                   name="dialRandomLastDigitCallerIdNumber"
 
 531                   ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber"
 
 535                   ng-disabled="!vm.crudPermissions.canEdit"
 
 540                     translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"
 
 544                   ng-messages="originateForm['dialRandomLastDigitCallerIdNumber'].$error"
 
 545                   ng-show="originateForm['dialRandomLastDigitCallerIdNumber'].$touched"
 
 548                   <div ng-message="required">
 
 550                       translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED"
 
 551                       >RandomLastDigitCallerIdNumber field is required</span
 
 554                   <div ng-message="min">
 
 556                       translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 557                       >RandomLastDigitCallerIdNumber must be a valid greater or
 
 562                   <div ng-message="max">
 
 564                       translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 565                       >RandomLastDigitCallerIdNumber must be a valid greater or
 
 571               </md-input-container>
 
 572               <md-input-container class="md-block">
 
 573                 <label translate="MOTIONDIALER.ORIGINATETIMEOUT"
 
 574                   >OriginateTimeout</label
 
 578                   name="dialOriginateTimeout"
 
 579                   ng-model="vm.ivrCampaign.dialOriginateTimeout"
 
 583                   ng-disabled="!vm.crudPermissions.canEdit"
 
 587                   <span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span>
 
 590                   ng-messages="originateForm['dialOriginateTimeout'].$error"
 
 591                   ng-show="originateForm['dialOriginateTimeout'].$touched"
 
 594                   <div ng-message="required">
 
 596                       translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED"
 
 597                       >OriginateTimeout field is required</span
 
 600                   <div ng-message="min">
 
 602                       translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 603                       >OriginateTimeout must be a valid greater or equal
 
 608                   <div ng-message="max">
 
 610                       translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 611                       >OriginateTimeout must be a valid greater or equal
 
 617               </md-input-container>
 
 618               <md-input-container class="md-block">
 
 619                 <label translate="MOTIONDIALER.PREFIX">Prefix</label>
 
 623                   ng-model="vm.ivrCampaign.dialPrefix"
 
 625                   ng-disabled="!vm.crudPermissions.canEdit"
 
 629                   <span translate="MOTIONDIALER.HELP.PREFIX"></span>
 
 632                   ng-messages="originateForm['dialPrefix'].$error"
 
 633                   ng-show="originateForm['dialPrefix'].$touched"
 
 636                   <div ng-message="required">
 
 637                     <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED"
 
 638                       >Prefix field is required</span
 
 641                   <div ng-message="pattern">
 
 643                       translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN"
 
 644                       translate-values="{ regex: '/^\d+$/' }"
 
 645                       >Prefix must be valid pattern
 
 649               </md-input-container>
 
 656           <span translate="MOTIONDIALER.RETRYANDFREQUENCY"
 
 657             >RETRYANDFREQUENCY</span
 
 662             class="ivrCampaign-detail-form-container global md-background-bg md-whiteframe-1dp"
 
 664             <div class="pb-16" layout="row" layout-align="start center">
 
 665               <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">
 
 669             <form name="globalForm" novalidate>
 
 670               <md-input-container class="md-block">
 
 671                 <label translate="MOTIONDIALER.GLOBALMAXRETRY"
 
 672                   >GlobalMaxRetry</label
 
 676                   name="dialGlobalMaxRetry"
 
 677                   ng-model="vm.ivrCampaign.dialGlobalMaxRetry"
 
 682                   ng-disabled="!vm.crudPermissions.canEdit"
 
 686                   <span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span>
 
 689                   ng-messages="globalForm['dialGlobalMaxRetry'].$error"
 
 690                   ng-show="globalForm['dialGlobalMaxRetry'].$touched"
 
 693                   <div ng-message="required">
 
 695                       translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED"
 
 696                       >GlobalMaxRetry field is required</span
 
 699                   <div ng-message="min">
 
 701                       translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 702                       >GlobalMaxRetry must be a valid greater or equal
 
 707                   <div ng-message="max">
 
 709                       translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 710                       >GlobalMaxRetry must be a valid greater or equal
 
 716               </md-input-container>
 
 720             class="ivrCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp"
 
 722             <div class="pb-16" layout="row" layout-align="start center">
 
 724                 class="h2 secondary-text"
 
 725                 translate="MOTIONDIALER.CONGESTION"
 
 730             <form name="congestionForm" novalidate>
 
 731               <md-input-container class="md-block">
 
 732                 <label translate="MOTIONDIALER.CONGESTIONMAXRETRY"
 
 733                   >CongestionMaxRetry</label
 
 737                   name="dialCongestionMaxRetry"
 
 738                   ng-model="vm.ivrCampaign.dialCongestionMaxRetry"
 
 743                   ng-disabled="!vm.crudPermissions.canEdit"
 
 747                   <span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span>
 
 750                   ng-messages="congestionForm['dialCongestionMaxRetry'].$error"
 
 751                   ng-show="congestionForm['dialCongestionMaxRetry'].$touched"
 
 754                   <div ng-message="required">
 
 756                       translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED"
 
 757                       >CongestionMaxRetry field is required</span
 
 760                   <div ng-message="min">
 
 762                       translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 763                       >CongestionMaxRetry must be a valid greater or equal
 
 768                   <div ng-message="max">
 
 770                       translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 771                       >CongestionMaxRetry must be a valid greater or equal
 
 777               </md-input-container>
 
 778               <md-input-container class="md-block">
 
 779                 <label translate="MOTIONDIALER.CONGESTIONRETRYTIME"
 
 780                   >CongestionRetryTime</label
 
 784                   name="dialCongestionRetryFrequency"
 
 785                   ng-model="vm.ivrCampaign.dialCongestionRetryFrequency"
 
 789                   ng-disabled="!vm.crudPermissions.canEdit"
 
 794                     translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"
 
 798                   ng-messages="congestionForm['dialCongestionRetryFrequency'].$error"
 
 799                   ng-show="congestionForm['dialCongestionRetryFrequency'].$touched"
 
 802                   <div ng-message="required">
 
 804                       translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED"
 
 805                       >CongestionRetryTime field is required</span
 
 808                   <div ng-message="min">
 
 810                       translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 811                       >CongestionRetryTime must be a valid greater or equal
 
 816                   <div ng-message="max">
 
 818                       translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 819                       >CongestionRetryTime must be a valid greater or equal
 
 825               </md-input-container>
 
 829             class="ivrCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp"
 
 831             <div class="pb-16" layout="row" layout-align="start center">
 
 832               <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">
 
 836             <form name="busyForm" novalidate>
 
 837               <md-input-container class="md-block">
 
 838                 <label translate="MOTIONDIALER.BUSYMAXRETRY"
 
 843                   name="dialBusyMaxRetry"
 
 844                   ng-model="vm.ivrCampaign.dialBusyMaxRetry"
 
 849                   ng-disabled="!vm.crudPermissions.canEdit"
 
 853                   <span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span>
 
 856                   ng-messages="busyForm['dialBusyMaxRetry'].$error"
 
 857                   ng-show="busyForm['dialBusyMaxRetry'].$touched"
 
 860                   <div ng-message="required">
 
 861                     <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED"
 
 862                       >BusyMaxRetry field is required</span
 
 865                   <div ng-message="min">
 
 867                       translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 868                       >BusyMaxRetry must be a valid greater or equal than</span
 
 872                   <div ng-message="max">
 
 874                       translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 875                       >BusyMaxRetry must be a valid greater or equal than</span
 
 880               </md-input-container>
 
 881               <md-input-container class="md-block">
 
 882                 <label translate="MOTIONDIALER.BUSYRETRYTIME"
 
 883                   >BusyRetryTime</label
 
 887                   name="dialBusyRetryFrequency"
 
 888                   ng-model="vm.ivrCampaign.dialBusyRetryFrequency"
 
 892                   ng-disabled="!vm.crudPermissions.canEdit"
 
 896                   <span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span>
 
 899                   ng-messages="busyForm['dialBusyRetryFrequency'].$error"
 
 900                   ng-show="busyForm['dialBusyRetryFrequency'].$touched"
 
 903                   <div ng-message="required">
 
 904                     <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED"
 
 905                       >BusyRetryTime field is required</span
 
 908                   <div ng-message="min">
 
 910                       translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 911                       >BusyRetryTime must be a valid greater or equal than</span
 
 915                   <div ng-message="max">
 
 917                       translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 918                       >BusyRetryTime must be a valid greater or equal than</span
 
 923               </md-input-container>
 
 927             class="ivrCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp"
 
 929             <div class="pb-16" layout="row" layout-align="start center">
 
 930               <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">
 
 934             <form name="noanswerForm" novalidate>
 
 935               <md-input-container class="md-block">
 
 936                 <label translate="MOTIONDIALER.NOANSWERMAXRETRY"
 
 937                   >NoAnswerMaxRetry</label
 
 941                   name="dialNoAnswerMaxRetry"
 
 942                   ng-model="vm.ivrCampaign.dialNoAnswerMaxRetry"
 
 947                   ng-disabled="!vm.crudPermissions.canEdit"
 
 951                   <span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span>
 
 954                   ng-messages="noanswerForm['dialNoAnswerMaxRetry'].$error"
 
 955                   ng-show="noanswerForm['dialNoAnswerMaxRetry'].$touched"
 
 958                   <div ng-message="required">
 
 960                       translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED"
 
 961                       >NoAnswerMaxRetry field is required</span
 
 964                   <div ng-message="min">
 
 966                       translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
 967                       >NoAnswerMaxRetry must be a valid greater or equal
 
 972                   <div ng-message="max">
 
 974                       translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
 975                       >NoAnswerMaxRetry must be a valid greater or equal
 
 981               </md-input-container>
 
 982               <md-input-container class="md-block">
 
 983                 <label translate="MOTIONDIALER.NOANSWERRETRYTIME"
 
 984                   >NoAnswerRetryTime</label
 
 988                   name="dialNoAnswerRetryFrequency"
 
 989                   ng-model="vm.ivrCampaign.dialNoAnswerRetryFrequency"
 
 993                   ng-disabled="!vm.crudPermissions.canEdit"
 
 997                   <span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span>
 
1000                   ng-messages="noanswerForm['dialNoAnswerRetryFrequency'].$error"
 
1001                   ng-show="noanswerForm['dialNoAnswerRetryFrequency'].$touched"
 
1004                   <div ng-message="required">
 
1006                       translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED"
 
1007                       >NoAnswerRetryTime field is required</span
 
1010                   <div ng-message="min">
 
1012                       translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1013                       >NoAnswerRetryTime must be a valid greater or equal
 
1018                   <div ng-message="max">
 
1020                       translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1021                       >NoAnswerRetryTime must be a valid greater or equal
 
1027               </md-input-container>
 
1031             class="ivrCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp"
 
1033             <div class="pb-16" layout="row" layout-align="start center">
 
1035                 class="h2 secondary-text"
 
1036                 translate="MOTIONDIALER.NOSUCHNUMBER"
 
1041             <form name="nosuchnumberForm" novalidate>
 
1042               <md-input-container class="md-block">
 
1043                 <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY"
 
1044                   >NoSuchNumberMaxRetry</label
 
1048                   name="dialNoSuchNumberMaxRetry"
 
1049                   ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry"
 
1054                   ng-disabled="!vm.crudPermissions.canEdit"
 
1059                     translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"
 
1063                   ng-messages="nosuchnumberForm['dialNoSuchNumberMaxRetry'].$error"
 
1064                   ng-show="nosuchnumberForm['dialNoSuchNumberMaxRetry'].$touched"
 
1067                   <div ng-message="required">
 
1069                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED"
 
1070                       >NoSuchNumberMaxRetry field is required</span
 
1073                   <div ng-message="min">
 
1075                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1076                       >NoSuchNumberMaxRetry must be a valid greater or equal
 
1081                   <div ng-message="max">
 
1083                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1084                       >NoSuchNumberMaxRetry must be a valid greater or equal
 
1090               </md-input-container>
 
1091               <md-input-container class="md-block">
 
1092                 <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME"
 
1093                   >NoSuchNumberRetryTime</label
 
1097                   name="dialNoSuchNumberRetryFrequency"
 
1098                   ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency"
 
1102                   ng-disabled="!vm.crudPermissions.canEdit"
 
1107                     translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"
 
1111                   ng-messages="nosuchnumberForm['dialNoSuchNumberRetryFrequency'].$error"
 
1112                   ng-show="nosuchnumberForm['dialNoSuchNumberRetryFrequency'].$touched"
 
1115                   <div ng-message="required">
 
1117                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED"
 
1118                       >NoSuchNumberRetryTime field is required</span
 
1121                   <div ng-message="min">
 
1123                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1124                       >NoSuchNumberRetryTime must be a valid greater or equal
 
1129                   <div ng-message="max">
 
1131                       translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1132                       >NoSuchNumberRetryTime must be a valid greater or equal
 
1138               </md-input-container>
 
1142             class="ivrCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp"
 
1144             <div class="pb-16" layout="row" layout-align="start center">
 
1145               <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">
 
1149             <form name="dropForm" novalidate>
 
1150               <md-input-container class="md-block">
 
1151                 <label translate="MOTIONDIALER.DROPMAXRETRY"
 
1152                   >DropMaxRetry</label
 
1156                   name="dialDropMaxRetry"
 
1157                   ng-model="vm.ivrCampaign.dialDropMaxRetry"
 
1162                   ng-disabled="!vm.crudPermissions.canEdit"
 
1166                   <span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span>
 
1169                   ng-messages="dropForm['dialDropMaxRetry'].$error"
 
1170                   ng-show="dropForm['dialDropMaxRetry'].$touched"
 
1173                   <div ng-message="required">
 
1174                     <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED"
 
1175                       >DropMaxRetry field is required</span
 
1178                   <div ng-message="min">
 
1180                       translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1181                       >DropMaxRetry must be a valid greater or equal than</span
 
1185                   <div ng-message="max">
 
1187                       translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1188                       >DropMaxRetry must be a valid greater or equal than</span
 
1193               </md-input-container>
 
1194               <md-input-container class="md-block">
 
1195                 <label translate="MOTIONDIALER.DROPRETRYTIME"
 
1196                   >DropRetryTime</label
 
1200                   name="dialDropRetryFrequency"
 
1201                   ng-model="vm.ivrCampaign.dialDropRetryFrequency"
 
1205                   ng-disabled="!vm.crudPermissions.canEdit"
 
1209                   <span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span>
 
1212                   ng-messages="dropForm['dialDropRetryFrequency'].$error"
 
1213                   ng-show="dropForm['dialDropRetryFrequency'].$touched"
 
1216                   <div ng-message="required">
 
1217                     <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED"
 
1218                       >DropRetryTime field is required</span
 
1221                   <div ng-message="min">
 
1223                       translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1224                       >DropRetryTime must be a valid greater or equal than</span
 
1228                   <div ng-message="max">
 
1230                       translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1231                       >DropRetryTime must be a valid greater or equal than</span
 
1236               </md-input-container>
 
1240             class="ivrCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp"
 
1242             <div class="pb-16" layout="row" layout-align="start center">
 
1243               <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">
 
1247             <form name="abandonedForm" novalidate>
 
1248               <md-input-container class="md-block">
 
1249                 <label translate="MOTIONDIALER.ABANDONEDMAXRETRY"
 
1250                   >AbandonedMaxRetry</label
 
1254                   name="dialAbandonedMaxRetry"
 
1255                   ng-model="vm.ivrCampaign.dialAbandonedMaxRetry"
 
1260                   ng-disabled="!vm.crudPermissions.canEdit"
 
1264                   <span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span>
 
1267                   ng-messages="abandonedForm['dialAbandonedMaxRetry'].$error"
 
1268                   ng-show="abandonedForm['dialAbandonedMaxRetry'].$touched"
 
1271                   <div ng-message="required">
 
1273                       translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED"
 
1274                       >AbandonedMaxRetry field is required</span
 
1277                   <div ng-message="min">
 
1279                       translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1280                       >AbandonedMaxRetry must be a valid greater or equal
 
1285                   <div ng-message="max">
 
1287                       translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1288                       >AbandonedMaxRetry must be a valid greater or equal
 
1294               </md-input-container>
 
1295               <md-input-container class="md-block">
 
1296                 <label translate="MOTIONDIALER.ABANDONEDRETRYTIME"
 
1297                   >AbandonedRetryTime</label
 
1301                   name="dialAbandonedRetryFrequency"
 
1302                   ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency"
 
1306                   ng-disabled="!vm.crudPermissions.canEdit"
 
1310                   <span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span>
 
1313                   ng-messages="abandonedForm['dialAbandonedRetryFrequency'].$error"
 
1314                   ng-show="abandonedForm['dialAbandonedRetryFrequency'].$touched"
 
1317                   <div ng-message="required">
 
1319                       translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED"
 
1320                       >AbandonedRetryTime field is required</span
 
1323                   <div ng-message="min">
 
1325                       translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1326                       >AbandonedRetryTime must be a valid greater or equal
 
1331                   <div ng-message="max">
 
1333                       translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1334                       >AbandonedRetryTime must be a valid greater or equal
 
1340               </md-input-container>
 
1344             class="ivrCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp"
 
1346             <div class="pb-16" layout="row" layout-align="start center">
 
1347               <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">
 
1351             <form name="machineForm" novalidate>
 
1352               <md-input-container class="md-block">
 
1353                 <label translate="MOTIONDIALER.MACHINEMAXRETRY"
 
1354                   >MachineMaxRetry</label
 
1358                   name="dialMachineMaxRetry"
 
1359                   ng-model="vm.ivrCampaign.dialMachineMaxRetry"
 
1364                   ng-disabled="!vm.crudPermissions.canEdit"
 
1368                   <span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span>
 
1371                   ng-messages="machineForm['dialMachineMaxRetry'].$error"
 
1372                   ng-show="machineForm['dialMachineMaxRetry'].$touched"
 
1375                   <div ng-message="required">
 
1377                       translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED"
 
1378                       >MachineMaxRetry field is required</span
 
1381                   <div ng-message="min">
 
1383                       translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1384                       >MachineMaxRetry must be a valid greater or equal
 
1389                   <div ng-message="max">
 
1391                       translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1392                       >MachineMaxRetry must be a valid greater or equal
 
1398               </md-input-container>
 
1399               <md-input-container class="md-block">
 
1400                 <label translate="MOTIONDIALER.MACHINERETRYTIME"
 
1401                   >MachineRetryTime</label
 
1405                   name="dialMachineRetryFrequency"
 
1406                   ng-model="vm.ivrCampaign.dialMachineRetryFrequency"
 
1410                   ng-disabled="!vm.crudPermissions.canEdit"
 
1414                   <span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span>
 
1417                   ng-messages="machineForm['dialMachineRetryFrequency'].$error"
 
1418                   ng-show="machineForm['dialMachineRetryFrequency'].$touched"
 
1421                   <div ng-message="required">
 
1423                       translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED"
 
1424                       >MachineRetryTime field is required</span
 
1427                   <div ng-message="min">
 
1429                       translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1430                       >MachineRetryTime must be a valid greater or equal
 
1435                   <div ng-message="max">
 
1437                       translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1438                       >MachineRetryTime must be a valid greater or equal
 
1444               </md-input-container>
 
1448             class="ivrCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp"
 
1450             <div class="pb-16" layout="row" layout-align="start center">
 
1452                 class="h2 secondary-text"
 
1453                 translate="MOTIONDIALER.AGENTREJECT"
 
1458             <form name="agentrejectForm" novalidate>
 
1459               <md-input-container class="md-block">
 
1460                 <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY"
 
1461                   >AgentRejectMaxRetry</label
 
1465                   name="dialAgentRejectMaxRetry"
 
1466                   ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry"
 
1471                   ng-disabled="!vm.crudPermissions.canEdit"
 
1476                     translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"
 
1480                   ng-messages="agentrejectForm['dialAgentRejectMaxRetry'].$error"
 
1481                   ng-show="agentrejectForm['dialAgentRejectMaxRetry'].$touched"
 
1484                   <div ng-message="required">
 
1486                       translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED"
 
1487                       >AgentRejectMaxRetry field is required</span
 
1490                   <div ng-message="min">
 
1492                       translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1493                       >AgentRejectMaxRetry must be a valid greater or equal
 
1498                   <div ng-message="max">
 
1500                       translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1501                       >AgentRejectMaxRetry must be a valid greater or equal
 
1507               </md-input-container>
 
1508               <md-input-container class="md-block">
 
1509                 <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME"
 
1510                   >AgentRejectRetryTime</label
 
1514                   name="dialAgentRejectRetryFrequency"
 
1515                   ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency"
 
1519                   ng-disabled="!vm.crudPermissions.canEdit"
 
1524                     translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"
 
1528                   ng-messages="agentrejectForm['dialAgentRejectRetryFrequency'].$error"
 
1529                   ng-show="agentrejectForm['dialAgentRejectRetryFrequency'].$touched"
 
1532                   <div ng-message="required">
 
1534                       translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED"
 
1535                       >AgentRejectRetryTime field is required</span
 
1538                   <div ng-message="min">
 
1540                       translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1541                       >AgentRejectRetryTime must be a valid greater or equal
 
1546                   <div ng-message="max">
 
1548                       translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
1549                       >AgentRejectRetryTime must be a valid greater or equal
 
1555               </md-input-container>
 
1562           <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>
 
1566             class="ivrCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp"
 
1568             <div class="pb-16" layout="row" layout-align="start center">
 
1569               <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">
 
1573             <form name="advancedForm" novalidate>
 
1574               <md-input-container class="md-block">
 
1575                 <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT"
 
1576                   >DialOrderByScheduledAt</label
 
1579                   name="dialOrderByScheduledAt"
 
1580                   ng-model="vm.ivrCampaign.dialOrderByScheduledAt"
 
1582                   ng-disabled="!vm.crudPermissions.canEdit"
 
1584                   <md-option ng-value="'DESC'">
 
1585                     {{ 'MOTIONDIALER.DESC' | translate }}
 
1588                   <md-option ng-value="'ASC'">
 
1589                     {{ 'MOTIONDIALER.ASC' | translate }}
 
1594                     translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"
 
1598                   ng-messages="advancedForm['dialOrderByScheduledAt'].$error"
 
1599                   ng-show="advancedForm['dialOrderByScheduledAt'].$touched"
 
1602                   <div ng-message="required">
 
1604                       translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED"
 
1605                       >DialOrderByScheduledAt field is required</span
 
1609               </md-input-container>
 
1613             class="ivrCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp"
 
1615             <div class="pb-16" layout="row" layout-align="start center">
 
1617                 class="h2 secondary-text"
 
1618                 translate="MOTIONDIALER.GLOBALINTERVAL"
 
1623             <form name="globalintervalForm" novalidate>
 
1624               <md-input-container class="md-block">
 
1625                 <label translate="MOTIONDIALER.GLOBALINTERVAL"
 
1626                   >GlobalInterval</label
 
1630                   name="dialGlobalInterval"
 
1631                   ng-model="vm.ivrCampaign.dialGlobalInterval"
 
1634                   ng-disabled="!vm.crudPermissions.canEdit"
 
1638                   <span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span>
 
1641                   ng-messages="globalintervalForm['dialGlobalInterval'].$error"
 
1642                   ng-show="globalintervalForm['dialGlobalInterval'].$touched"
 
1645                   <div ng-message="required">
 
1647                       translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED"
 
1648                       >GlobalInterval field is required</span
 
1652               </md-input-container>
 
1656             class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp"
 
1658             <div class="pb-16" layout="row" layout-align="start center">
 
1659               <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">
 
1663             <form name="timezoneForm" novalidate>
 
1664               <md-input-container class="md-block">
 
1665                 <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>
 
1668                   ng-model="vm.ivrCampaign.dialTimezone"
 
1670                   ng-disabled="!vm.crudPermissions.canEdit"
 
1673                   <span translate="MOTIONDIALER.HELP.TIMEZONE"></span>
 
1676                   ng-messages="timezoneForm['dialTimezone'].$error"
 
1677                   ng-show="timezoneForm[dialTimezone].$touched"
 
1680                   <div ng-message="required">
 
1681                     <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED"
 
1682                       >Timezone field is required</span
 
1686               </md-input-container>
 
1690             class="ivrCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp"
 
1692             <div class="pb-16" layout="row" layout-align="start center">
 
1693               <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">
 
1697             <form name="amdForm" novalidate>
 
1698               <md-input-container class="md-block">
 
1700                   ng-model="vm.ivrCampaign.dialAMDActive"
 
1701                   aria-label="AMDActive"
 
1702                   ng-disabled="!vm.crudPermissions.canEdit"
 
1703                   ><span translate="MOTIONDIALER.AMDACTIVE"
 
1709                   <span translate="MOTIONDIALER.HELP.AMDACTIVE"></span>
 
1711               </md-input-container>
 
1713                 ng-if="vm.ivrCampaign.dialAMDActive"
 
1716                 <label translate="MOTIONDIALER.AMDINITIALSILENCE"
 
1717                   >AMDInitialSilence</label
 
1721                   name="dialAMDInitialSilence"
 
1722                   ng-model="vm.ivrCampaign.dialAMDInitialSilence"
 
1724                   ng-disabled="!vm.crudPermissions.canEdit"
 
1728                   <span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span>
 
1731                   ng-messages="amdForm['dialAMDInitialSilence'].$error"
 
1732                   ng-show="amdForm['dialAMDInitialSilence'].$touched"
 
1735                   <div ng-message="required">
 
1737                       translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED"
 
1738                       >AMDInitialSilence field is required</span
 
1741                   <div ng-message="min">
 
1743                       translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1744                       >AMDInitialSilence must be a valid greater or equal
 
1750               </md-input-container>
 
1752                 ng-if="vm.ivrCampaign.dialAMDActive"
 
1755                 <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>
 
1758                   name="dialAMDGreeting"
 
1759                   ng-model="vm.ivrCampaign.dialAMDGreeting"
 
1761                   ng-disabled="!vm.crudPermissions.canEdit"
 
1765                   <span translate="MOTIONDIALER.HELP.AMDGREETING"></span>
 
1768                   ng-messages="amdForm['dialAMDGreeting'].$error"
 
1769                   ng-show="amdForm['dialAMDGreeting'].$touched"
 
1772                   <div ng-message="required">
 
1773                     <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED"
 
1774                       >AMDGreeting field is required</span
 
1777                   <div ng-message="min">
 
1779                       translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1780                       >AMDGreeting must be a valid greater or equal than</span
 
1785               </md-input-container>
 
1787                 ng-if="vm.ivrCampaign.dialAMDActive"
 
1790                 <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE"
 
1791                   >AMDAfterGreetingSilence</label
 
1795                   name="dialAMDAfterGreetingSilence"
 
1796                   ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence"
 
1798                   ng-disabled="!vm.crudPermissions.canEdit"
 
1803                     translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"
 
1807                   ng-messages="amdForm['dialAMDAfterGreetingSilence'].$error"
 
1808                   ng-show="amdForm['dialAMDAfterGreetingSilence'].$touched"
 
1811                   <div ng-message="required">
 
1813                       translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED"
 
1814                       >AMDAfterGreetingSilence field is required</span
 
1817                   <div ng-message="min">
 
1819                       translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1820                       >AMDAfterGreetingSilence must be a valid greater or equal
 
1826               </md-input-container>
 
1828                 ng-if="vm.ivrCampaign.dialAMDActive"
 
1831                 <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME"
 
1832                   >AMDTotalAnalysisTime</label
 
1836                   name="dialAMDTotalAnalysisTime"
 
1837                   ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime"
 
1839                   ng-disabled="!vm.crudPermissions.canEdit"
 
1844                     translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"
 
1848                   ng-messages="amdForm['dialAMDTotalAnalysisTime'].$error"
 
1849                   ng-show="amdForm['dialAMDTotalAnalysisTime'].$touched"
 
1852                   <div ng-message="required">
 
1854                       translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED"
 
1855                       >AMDTotalAnalysisTime field is required</span
 
1858                   <div ng-message="min">
 
1860                       translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1861                       >AMDTotalAnalysisTime must be a valid greater or equal
 
1867               </md-input-container>
 
1869                 ng-if="vm.ivrCampaign.dialAMDActive"
 
1872                 <label translate="MOTIONDIALER.AMDMINWORDLENGTH"
 
1873                   >AMDMinWordLength</label
 
1877                   name="dialAMDMinWordLength"
 
1878                   ng-model="vm.ivrCampaign.dialAMDMinWordLength"
 
1880                   ng-disabled="!vm.crudPermissions.canEdit"
 
1884                   <span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span>
 
1887                   ng-messages="amdForm['dialAMDMinWordLength'].$error"
 
1888                   ng-show="amdForm['dialAMDMinWordLength'].$touched"
 
1891                   <div ng-message="required">
 
1893                       translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED"
 
1894                       >AMDMinWordLength field is required</span
 
1897                   <div ng-message="min">
 
1899                       translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1900                       >AMDMinWordLength must be a valid greater or equal
 
1906               </md-input-container>
 
1908                 ng-if="vm.ivrCampaign.dialAMDActive"
 
1911                 <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE"
 
1912                   >AMDBetweenWordsSilence</label
 
1916                   name="dialAMDBetweenWordsSilence"
 
1917                   ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence"
 
1919                   ng-disabled="!vm.crudPermissions.canEdit"
 
1924                     translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"
 
1928                   ng-messages="amdForm['dialAMDBetweenWordsSilence'].$error"
 
1929                   ng-show="amdForm['dialAMDBetweenWordsSilence'].$touched"
 
1932                   <div ng-message="required">
 
1934                       translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED"
 
1935                       >AMDBetweenWordsSilence field is required</span
 
1938                   <div ng-message="min">
 
1940                       translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1941                       >AMDBetweenWordsSilence must be a valid greater or equal
 
1947               </md-input-container>
 
1949                 ng-if="vm.ivrCampaign.dialAMDActive"
 
1952                 <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS"
 
1953                   >AMDMaximumNumberOfWords</label
 
1957                   name="dialAMDMaximumNumberOfWords"
 
1958                   ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords"
 
1960                   ng-disabled="!vm.crudPermissions.canEdit"
 
1965                     translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"
 
1969                   ng-messages="amdForm['dialAMDMaximumNumberOfWords'].$error"
 
1970                   ng-show="amdForm['dialAMDMaximumNumberOfWords'].$touched"
 
1973                   <div ng-message="required">
 
1975                       translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED"
 
1976                       >AMDMaximumNumberOfWords field is required</span
 
1979                   <div ng-message="min">
 
1981                       translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
1982                       >AMDMaximumNumberOfWords must be a valid greater or equal
 
1988               </md-input-container>
 
1990                 ng-if="vm.ivrCampaign.dialAMDActive"
 
1993                 <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD"
 
1994                   >AMDSilenceThreshold</label
 
1998                   name="dialAMDSilenceThreshold"
 
1999                   ng-model="vm.ivrCampaign.dialAMDSilenceThreshold"
 
2002                   ng-disabled="!vm.crudPermissions.canEdit"
 
2007                     translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"
 
2011                   ng-messages="amdForm['dialAMDSilenceThreshold'].$error"
 
2012                   ng-show="amdForm['dialAMDSilenceThreshold'].$touched"
 
2015                   <div ng-message="required">
 
2017                       translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED"
 
2018                       >AMDSilenceThreshold field is required</span
 
2021                   <div ng-message="min">
 
2023                       translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
2024                       >AMDSilenceThreshold must be a valid greater or equal
 
2029                   <div ng-message="max">
 
2031                       translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO"
 
2032                       >AMDSilenceThreshold must be a valid greater or equal
 
2038               </md-input-container>
 
2040                 ng-if="vm.ivrCampaign.dialAMDActive"
 
2043                 <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH"
 
2044                   >AMDMaximumWordLength</label
 
2048                   name="dialAMDMaximumWordLength"
 
2049                   ng-model="vm.ivrCampaign.dialAMDMaximumWordLength"
 
2051                   ng-disabled="!vm.crudPermissions.canEdit"
 
2056                     translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"
 
2060                   ng-messages="amdForm['dialAMDMaximumWordLength'].$error"
 
2061                   ng-show="amdForm['dialAMDMaximumWordLength'].$touched"
 
2064                   <div ng-message="required">
 
2066                       translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED"
 
2067                       >AMDMaximumWordLength field is required</span
 
2070                   <div ng-message="min">
 
2072                       translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO"
 
2073                       >AMDMaximumWordLength must be a valid greater or equal
 
2079               </md-input-container>
 
2086           <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>
 
2090             class="ivrCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp"
 
2093               ng-controller="IvrCampaignHopperStatisticsController as vm_hs"
 
2094               ng-init="vm_hs.init(vm.ivrCampaign)"
 
2096               <md-toolbar class="md-table-toolbar md-default">
 
2097                 <div class="md-toolbar-tools">
 
2098                   <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET"
 
2103                     class="md-icon-button"
 
2104                     ng-click="vm_hs.init(vm.ivrCampaign)"
 
2105                     aria-label="refresh Hopper"
 
2107                     translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS"
 
2109                     <md-icon md-font-icon="icon-refresh"></md-icon>
 
2113               <!-- WIDGET GROUP -->
 
2114               <div class="widget-group" layout="row" flex="100" layout-wrap>
 
2124                   <ms-widget-front class="p-16 white-bg" layout="row" flex>
 
2128                       layout-align="center center"
 
2131                       <div class="md-display-1 pb-8">
 
2132                         {{(vm_hs.total || 0) + (vm_hs.closed || 0)}}
 
2134                       <div class="font-weight-500 secondary-text">
 
2135                         {{ 'MOTIONDIALER.TOTAL' | translate }}
 
2152                   <ms-widget-front class="p-16 white-bg" layout="row" flex>
 
2156                       layout-align="center center"
 
2159                       <div class="md-display-1 pb-8">
 
2160                         {{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh ||
 
2161                         0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) |
 
2164                       <div class="font-weight-500 secondary-text">
 
2165                         {{ 'MOTIONDIALER.FRESH' | translate }}
 
2182                   <ms-widget-front class="p-16 white-bg" layout="row" flex>
 
2186                       layout-align="center center"
 
2189                       <div class="md-display-1 pb-8">
 
2190                         {{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}}
 
2191                         ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) *
 
2192                         100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) |
 
2195                       <div class="font-weight-500 secondary-text">
 
2196                         {{ 'MOTIONDIALER.OPEN' | translate }}
 
2213                   <ms-widget-front class="p-16 white-bg" layout="row" flex>
 
2217                       layout-align="center center"
 
2220                       <div class="md-display-1 pb-8">
 
2221                         {{vm_hs.closed ? (vm_hs.closed || 0) : 0}}
 
2222                         ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed
 
2223                         + (vm_hs.total || 0))) | number: 2) : 0}}%)
 
2225                       <div class="font-weight-500 secondary-text">
 
2226                         {{ 'MOTIONDIALER.CLOSED' | translate }}
 
2234               <!-- / WIDGET GROUP -->
 
2238             class="ivrCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp"
 
2241               ng-controller="IvrCampaignHoppersController as vm_dc"
 
2242               ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)"
 
2245                 class="md-table-toolbar md-default"
 
2246                 ng-hide="vm_dc.selectedIvrCampaignHoppers.length"
 
2248                 <div class="md-toolbar-tools">
 
2249                   <span class="md-subhead" translate="MOTIONDIALER.HOPPERS"
 
2253                     on-search="vm_dc.query.filter = query"
 
2254                     on-collapse="vm_dc.query.filter = undefined"
 
2260                     class="md-icon-button"
 
2261                     ng-click="vm_dc.getIvrCampaignHoppers()"
 
2262                     aria-label="refresh Hoppers"
 
2264                     translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS"
 
2266                     <md-icon md-font-icon="icon-refresh"></md-icon>
 
2271                 class="md-table-toolbar md-accent"
 
2272                 ng-show="vm_dc.selectedIvrCampaignHoppers.length"
 
2274                 <div class="md-toolbar-tools">
 
2275                   <span class="md-subhead"
 
2276                     >{{vm_dc.selectedIvrCampaignHoppers.length}}
 
2277                     {{vm_dc.selectedIvrCampaignHoppers.length > 1 ? 'items' :
 
2278                     'item'}} selected</span
 
2282                     class="md-icon-button"
 
2283                     ng-csv="vm_dc.exportSelectedIvrCampaignHoppers"
 
2285                     filename="ivrCampaigns.csv"
 
2287                     <md-icon md-font-icon="icon-file-excel"></md-icon>
 
2290                     ng-if="vm_dc.crudPermissions.canDelete"
 
2291                     class="md-icon-button"
 
2292                     ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)"
 
2293                     aria-label="delete selected"
 
2295                     translate-attr-label="MOTIONDIALER.DELETE_SELECTED"
 
2297                     <md-icon md-font-icon="icon-delete"></md-icon>
 
2301               <md-table-container class="font-size-12">
 
2306                   ng-model="vm_dc.selectedIvrCampaignHoppers"
 
2307                   md-progress="vm_dc.promise"
 
2311                     md-order="vm_dc.query.sort"
 
2312                     md-on-reorder="vm_dc.getIvrCampaignHoppers"
 
2315                       <th md-column md-order-by="ContactId">
 
2316                         {{ 'MOTIONDIALER.CONTACTID' | translate }}
 
2318                       <th md-column md-order-by="phone">
 
2319                         {{ 'MOTIONDIALER.PHONE' | translate }}
 
2321                       <th md-column md-order-by="countcongestionretry">
 
2322                         {{ 'MOTIONDIALER.CONGESTION' | translate }}
 
2324                       <th md-column md-order-by="countbusyretry">
 
2325                         {{ 'MOTIONDIALER.BUSY' | translate }}
 
2327                       <th md-column md-order-by="countnoanswerretry">
 
2328                         {{ 'MOTIONDIALER.NOANSWER' | translate }}
 
2330                       <th md-column md-order-by="countnosuchnumberretry">
 
2331                         {{ 'MOTIONDIALER.NOSUCHNUMBER' | translate }}
 
2333                       <th md-column md-order-by="countdropretry">
 
2334                         {{ 'MOTIONDIALER.DROP' | translate }}
 
2336                       <th md-column md-order-by="countabandonedretry">
 
2337                         {{ 'MOTIONDIALER.ABANDONED' | translate }}
 
2339                       <th md-column md-order-by="countmachineretry">
 
2340                         {{ 'MOTIONDIALER.MACHINE' | translate }}
 
2342                       <th md-column md-order-by="countagentrejectretry">
 
2343                         {{ 'MOTIONDIALER.AGENTREJECT' | translate }}
 
2345                       <th md-column md-order-by="scheduledat">
 
2346                         {{ 'MOTIONDIALER.SCHEDULEDAT' | translate }}
 
2348                       <th md-column md-order-by="priority">
 
2349                         {{ 'MOTIONDIALER.PRIORITY' | translate }}
 
2351                       <th md-column width="10px"></th>
 
2359                       ng-repeat="hopper in vm_dc.ivrCampaignHoppers.rows"
 
2362                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2365                         {{hopper.ContactId}}
 
2368                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2374                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2377                         {{hopper.countcongestionretry}}
 
2380                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2383                         {{hopper.countbusyretry}}
 
2386                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2389                         {{hopper.countnoanswerretry}}
 
2392                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2395                         {{hopper.countnosuchnumberretry}}
 
2398                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2401                         {{hopper.countdropretry}}
 
2404                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2407                         {{hopper.countabandonedretry}}
 
2410                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2413                         {{hopper.countmachineretry}}
 
2416                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2419                         {{hopper.countagentrejectretry}}
 
2422                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2425                         {{ hopper.scheduledat | formatdate }}
 
2428                         ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2431                         {{ vm_dc.arraypriority[hopper.priority].option }}
 
2437                         ng-if="!vm_dc.crudPermissions.readOnly"
 
2441                             class="md-icon-button"
 
2444                             translate-attr-aria-label="MOTIONDIALER.MORE"
 
2445                             ng-click="$mdOpenMenu($event)"
 
2448                               md-font-icon="icon-dots-vertical"
 
2452                           <md-menu-content width="3">
 
2453                             <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
2455                                 ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)"
 
2456                                 translate="MOTIONDIALER.EDIT_HOPPER"
 
2462                               ng-if="vm_dc.crudPermissions.canDelete"
 
2465                                 ng-click="vm_dc.deleteConfirm(hopper, $event)"
 
2466                                 translate="MOTIONDIALER.DELETE_HOPPER"
 
2475                     <tr md-row ng-if="!vm_dc.ivrCampaignHoppers.rows.length">
 
2476                       <td md-cell colspan="15">
 
2477                         <div layout="row" layout-align="center center">
 
2479                             class="text-boxed-light"
 
2480                             translate="MOTIONDIALER.NO_HOPPER_AVAILABLE"
 
2481                             >No hopper available</span
 
2488               </md-table-container>
 
2489               <md-table-pagination
 
2490                 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
 
2491                 md-limit="vm_dc.query.limit"
 
2492                 md-limit-options="[10, 15, 20, 50, 100, 250]"
 
2493                 md-page="vm_dc.query.page"
 
2494                 md-total="{{vm_dc.ivrCampaignHoppers.count}}"
 
2495                 md-on-paginate="vm_dc.getIvrCampaignHoppers"
 
2497               ></md-table-pagination>
 
2504           <span translate="MOTIONDIALER.HISTORY">HISTORY</span>
 
2508             class="ivrCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp"
 
2511               ng-controller="IvrCampaignHopperHistoriesController as vm_dc"
 
2512               ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)"
 
2515                 class="md-table-toolbar md-default"
 
2516                 ng-hide="vm_dc.selectedIvrCampaignHopperHistories.length"
 
2518                 <div class="md-toolbar-tools">
 
2521                     translate="MOTIONDIALER.HOPPERHISTORIES"
 
2522                     >HopperHistories</span
 
2525                     on-search="vm_dc.query.filter = query"
 
2526                     on-collapse="vm_dc.query.filter = undefined"
 
2532                     class="md-icon-button"
 
2533                     ng-click="vm_dc.getIvrCampaignHopperHistories()"
 
2534                     aria-label="refresh HopperHistories"
 
2536                     translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES"
 
2538                     <md-icon md-font-icon="icon-refresh"></md-icon>
 
2543                 class="md-table-toolbar md-accent"
 
2544                 ng-show="vm_dc.selectedIvrCampaignHopperHistories.length"
 
2546                 <div class="md-toolbar-tools">
 
2547                   <span class="md-subhead"
 
2548                     >{{vm_dc.selectedIvrCampaignHopperHistories.length}}
 
2549                     {{vm_dc.selectedIvrCampaignHopperHistories.length > 1 ?
 
2550                     'items' : 'item'}} selected</span
 
2554                     class="md-icon-button"
 
2555                     ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories"
 
2557                     filename="ivrCampaigns.csv"
 
2559                     <md-icon md-font-icon="icon-file-excel"></md-icon>
 
2563               <md-table-container class="font-size-12">
 
2568                   ng-model="vm_dc.selectedIvrCampaignHopperHistories"
 
2569                   md-progress="vm_dc.promise"
 
2573                     md-order="vm_dc.query.sort"
 
2574                     md-on-reorder="vm_dc.getIvrCampaignHopperHistories"
 
2577                       <th md-column md-order-by="uniqueid">
 
2578                         {{ 'MOTIONDIALER.UNIQUEID' | translate }}
 
2580                       <th md-column md-order-by="ContactId">
 
2581                         {{ 'MOTIONDIALER.CONTACTID' | translate }}
 
2583                       <th md-column md-order-by="calleridnum">
 
2584                         {{ 'MOTIONDIALER.PHONE' | translate }}
 
2586                       <th md-column md-order-by="calleridname">
 
2587                         {{ 'MOTIONDIALER.NAME' | translate }}
 
2589                       <th md-column md-order-by="statedesc">
 
2590                         {{ 'MOTIONDIALER.STATUS' | translate }}
 
2592                       <th md-column md-order-by="scheduledat">
 
2593                         {{ 'MOTIONDIALER.SCHEDULEDAT' | translate }}
 
2595                       <th md-column md-order-by="starttime">
 
2596                         {{ 'MOTIONDIALER.STARTTIME' | translate }}
 
2598                       <th md-column md-order-by="endtime">
 
2599                         {{ 'MOTIONDIALER.ENDTIME' | translate }}
 
2601                       <th md-column width="10px"></th>
 
2607                       md-select="hopperHistory"
 
2609                       ng-repeat="hopperHistory in vm_dc.ivrCampaignHopperHistories.rows"
 
2611                       <td md-cell>{{hopperHistory.uniqueid}}</td>
 
2612                       <td md-cell>{{hopperHistory.ContactId}}</td>
 
2613                       <td md-cell>{{hopperHistory.calleridnum}}</td>
 
2614                       <td md-cell>{{hopperHistory.calleridname}}</td>
 
2615                       <td md-cell>{{hopperHistory.statedesc}}</td>
 
2617                         {{ hopperHistory.scheduledat | formatdate }}
 
2620                         {{ hopperHistory.starttime | formatdate }}
 
2622                       <td md-cell>{{ hopperHistory.endtime | formatdate }}</td>
 
2623                       <td md-cell class="actions"></td>
 
2627                       ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length"
 
2629                       <td md-cell colspan="11">
 
2630                         <div layout="row" layout-align="center center">
 
2632                             class="text-boxed-light"
 
2633                             translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE"
 
2634                             >No hopperhistory available</span
 
2641               </md-table-container>
 
2642               <md-table-pagination
 
2643                 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
 
2644                 md-limit="vm_dc.query.limit"
 
2645                 md-limit-options="[10, 15, 20, 50, 100, 250]"
 
2646                 md-page="vm_dc.query.page"
 
2647                 md-total="{{vm_dc.ivrCampaignHopperHistories.count}}"
 
2648                 md-on-paginate="vm_dc.getIvrCampaignHopperHistories"
 
2650               ></md-table-pagination>
 
2657           <span translate="MOTIONDIALER.FINAL">FINAL</span>
 
2661             class="ivrCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp"
 
2664               ng-controller="IvrCampaignHopperFinalsController as vm_dc"
 
2665               ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)"
 
2668                 class="md-table-toolbar md-default"
 
2669                 ng-hide="vm_dc.selectedIvrCampaignHopperFinals.length"
 
2671                 <div class="md-toolbar-tools">
 
2672                   <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS"
 
2676                     on-search="vm_dc.query.filter = query"
 
2677                     on-collapse="vm_dc.query.filter = undefined"
 
2683                     class="md-icon-button"
 
2684                     ng-click="vm_dc.getIvrCampaignHopperFinals()"
 
2685                     aria-label="refresh HopperFinals"
 
2687                     translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS"
 
2689                     <md-icon md-font-icon="icon-refresh"></md-icon>
 
2691                   <td md-cell class="actions">
 
2694                         class="md-icon-button"
 
2697                         translate-attr-aria-label="MOTIONDIALER.MORE"
 
2698                         ng-click="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);"
 
2700                         <md-icon md-font-icon="icon-backup-restore"></md-icon>
 
2702                           ><span translate="MOTIONDIALER.RESTORECONTACTS"></span
 
2705                       <md-menu-content width="3">
 
2706                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
2708                             ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)"
 
2710                             <span translate="MOTIONDIALER.NOANSWER "
 
2714                               >({{vm_dc.contacts.noAnswerContacts}})</span
 
2718                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
2720                             ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)"
 
2722                             <span translate="MOTIONDIALER.BUSY ">Busy</span>
 
2724                               >({{vm_dc.contacts.busyContacts}})</span
 
2728                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
2730                             ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)"
 
2732                             <span translate="MOTIONDIALER.CONGESTION "
 
2736                               >({{vm_dc.contacts.congestionContacts}})</span
 
2740                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
2742                             ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)"
 
2744                             <span translate="MOTIONDIALER.DROPPED ">Drop</span>
 
2746                               >({{vm_dc.contacts.dropContacts}})</span
 
2750                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
2752                             ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)"
 
2754                             <span translate="MOTIONDIALER.ABANDONED "
 
2758                               >({{vm_dc.contacts.abandonedContacts}})</span
 
2762                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
2764                             ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)"
 
2766                             <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT"
 
2770                               >({{vm_dc.contacts.reCallContacts}})</span
 
2774                         <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
2776                             ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)"
 
2778                             <span translate="MOTIONDIALER.NO_SUCH_NUMBER"
 
2782                               >({{vm_dc.contacts.noSuchContacts}})</span
 
2788                             ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)"
 
2790                             <span translate="MOTIONDIALER.ANSWERING_MACHINE"
 
2791                               >AnsweringMachine</span
 
2794                               >({{vm_dc.contacts.answeringMachine}})</span
 
2804                 class="md-table-toolbar md-accent"
 
2805                 ng-show="vm_dc.selectedIvrCampaignHopperFinals.length"
 
2807                 <div class="md-toolbar-tools">
 
2808                   <span class="md-subhead"
 
2809                     >{{vm_dc.selectedIvrCampaignHopperFinals.length}}
 
2810                     {{vm_dc.selectedIvrCampaignHopperFinals.length > 1 ? 'items'
 
2811                     : 'item'}} selected</span
 
2815                     class="md-icon-button"
 
2816                     ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals"
 
2818                     filename="ivrCampaigns.csv"
 
2820                     <md-icon md-font-icon="icon-file-excel"></md-icon>
 
2823                     ng-if="vm_dc.crudPermissions.canEdit"
 
2824                     class="md-icon-button"
 
2825                     ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)"
 
2826                     aria-label="move selected"
 
2828                     translate-attr-label="MOTIONDIALER.MOVE_SELECTED"
 
2830                     <md-icon md-font-icon="icon-restore"></md-icon>
 
2832                       ><span translate="MOTIONDIALER.RESTORECONTACTS"></span
 
2837               <md-table-container class="font-size-12">
 
2842                   ng-model="vm_dc.selectedIvrCampaignHopperFinals"
 
2843                   md-progress="vm_dc.promise"
 
2847                     md-order="vm_dc.query.sort"
 
2848                     md-on-reorder="vm_dc.getIvrCampaignHopperFinals"
 
2851                       <th md-column md-order-by="uniqueid">
 
2852                         {{ 'MOTIONDIALER.UNIQUEID' | translate }}
 
2854                       <th md-column md-order-by="ContactId">
 
2855                         {{ 'MOTIONDIALER.CONTACTID' | translate }}
 
2857                       <th md-column md-order-by="calleridnum">
 
2858                         {{ 'MOTIONDIALER.PHONE' | translate }}
 
2860                       <th md-column md-order-by="calleridname">
 
2861                         {{ 'MOTIONDIALER.NAME' | translate }}
 
2863                       <th md-column md-order-by="statedesc">
 
2864                         {{ 'MOTIONDIALER.STATUS' | translate }}
 
2866                       <th md-column md-order-by="countcongestionretry">
 
2867                         {{ 'MOTIONDIALER.CONGESTION' | translate }}
 
2869                       <th md-column md-order-by="countbusyretry">
 
2870                         {{ 'MOTIONDIALER.BUSY' | translate }}
 
2872                       <th md-column md-order-by="countnoanswerretry">
 
2873                         {{ 'MOTIONDIALER.NOANSWER' | translate }}
 
2875                       <th md-column md-order-by="countnosuchnumberretry">
 
2876                         {{ 'MOTIONDIALER.NOSUCHNUMBER' | translate }}
 
2878                       <th md-column md-order-by="countdropretry">
 
2879                         {{ 'MOTIONDIALER.DROP' | translate }}
 
2881                       <th md-column md-order-by="countabandonedretry">
 
2882                         {{ 'MOTIONDIALER.ABANDONED' | translate }}
 
2884                       <th md-column md-order-by="countmachineretry">
 
2885                         {{ 'MOTIONDIALER.MACHINE' | translate }}
 
2887                       <th md-column md-order-by="countagentrejectretry">
 
2888                         {{ 'MOTIONDIALER.AGENTREJECT' | translate }}
 
2890                       <th md-column md-order-by="starttime">
 
2891                         {{ 'MOTIONDIALER.STARTTIME' | translate }}
 
2893                       <th md-column md-order-by="endtime">
 
2894                         {{ 'MOTIONDIALER.ENDTIME' | translate }}
 
2896                       <th md-column md-order-by="disposition">
 
2897                         {{ 'MOTIONDIALER.DISPOSITION' | translate }}
 
2899                       <th md-column width="10px"></th>
 
2905                       md-select="hopperFinal"
 
2907                       ng-repeat="hopperFinal in vm_dc.ivrCampaignHopperFinals.rows"
 
2909                       <td md-cell>{{hopperFinal.uniqueid}}</td>
 
2910                       <td md-cell>{{hopperFinal.ContactId}}</td>
 
2911                       <td md-cell>{{hopperFinal.calleridnum}}</td>
 
2912                       <td md-cell>{{hopperFinal.calleridname}}</td>
 
2913                       <td md-cell>{{hopperFinal.statedesc}}</td>
 
2914                       <td md-cell>{{hopperFinal.countcongestionretry}}</td>
 
2915                       <td md-cell>{{hopperFinal.countbusyretry}}</td>
 
2916                       <td md-cell>{{hopperFinal.countnoanswerretry}}</td>
 
2917                       <td md-cell>{{hopperFinal.countnosuchnumberretry}}</td>
 
2918                       <td md-cell>{{hopperFinal.countdropretry}}</td>
 
2919                       <td md-cell>{{hopperFinal.countabandonedretry}}</td>
 
2920                       <td md-cell>{{hopperFinal.countmachineretry}}</td>
 
2921                       <td md-cell>{{hopperFinal.countagentrejectretry}}</td>
 
2922                       <td md-cell>{{ hopperFinal.starttime | formatdate }}</td>
 
2923                       <td md-cell>{{ hopperFinal.endtime | formatdate }}</td>
 
2924                       <td md-cell>{{hopperFinal.disposition}}</td>
 
2928                         ng-if="!vm_dc.crudPermissions.readOnly"
 
2932                             class="md-icon-button"
 
2935                             translate-attr-aria-label="MOTIONDIALER.MORE"
 
2936                             ng-click="$mdOpenMenu($event)"
 
2939                               md-font-icon="icon-dots-vertical"
 
2943                           <md-menu-content width="3">
 
2944                             <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">
 
2946                                 ng-click="vm_dc.moveConfirm(hopperFinal, $event)"
 
2947                                 translate="MOTIONDIALER.MOVE_HOPPERFINAL"
 
2958                       ng-if="!vm_dc.ivrCampaignHopperFinals.rows.length"
 
2960                       <td md-cell colspan="28">
 
2961                         <div layout="row" layout-align="center center">
 
2963                             class="text-boxed-light"
 
2964                             translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE"
 
2965                             >No hopperfinal available</span
 
2972               </md-table-container>
 
2973               <md-table-pagination
 
2974                 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
 
2975                 md-limit="vm_dc.query.limit"
 
2976                 md-limit-options="[10, 15, 20, 50, 100, 250]"
 
2977                 md-page="vm_dc.query.page"
 
2978                 md-total="{{vm_dc.ivrCampaignHopperFinals.count}}"
 
2979                 md-on-paginate="vm_dc.getIvrCampaignHopperFinals"
 
2981               ></md-table-pagination>
 
2988           <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>
 
2992             class="ivrCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp"
 
2995               ng-controller="IvrCampaignHopperBlacksController as vm_dc"
 
2996               ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)"
 
2999                 class="md-table-toolbar md-default"
 
3000                 ng-hide="vm_dc.selectedIvrCampaignHopperBlacks.length"
 
3002                 <div class="md-toolbar-tools">
 
3003                   <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS"
 
3007                     on-search="vm_dc.query.filter = query"
 
3008                     on-collapse="vm_dc.query.filter = undefined"
 
3016                 class="md-table-toolbar md-accent"
 
3017                 ng-show="vm_dc.selectedIvrCampaignHopperBlacks.length"
 
3019                 <div class="md-toolbar-tools">
 
3020                   <span class="md-subhead"
 
3021                     >{{vm_dc.selectedIvrCampaignHopperBlacks.length}}
 
3022                     {{vm_dc.selectedIvrCampaignHopperBlacks.length > 1 ? 'items'
 
3023                     : 'item'}} selected</span
 
3027                     class="md-icon-button"
 
3028                     ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks"
 
3030                     filename="ivrCampaigns.csv"
 
3032                     <md-icon md-font-icon="icon-file-excel"></md-icon>
 
3036               <md-table-container class="font-size-12">
 
3041                   ng-model="vm_dc.selectedIvrCampaignHopperBlacks"
 
3042                   md-progress="vm_dc.promise"
 
3046                     md-order="vm_dc.query.sort"
 
3047                     md-on-reorder="vm_dc.getIvrCampaignHopperBlacks"
 
3050                       <th md-column md-order-by="ContactId">
 
3051                         {{ 'MOTIONDIALER.CONTACTID' | translate }}
 
3053                       <th md-column md-order-by="phone">
 
3054                         {{ 'MOTIONDIALER.PHONE' | translate }}
 
3056                       <th md-column width="10px"></th>
 
3062                       md-select="hopperBlack"
 
3064                       ng-repeat="hopperBlack in vm_dc.ivrCampaignHopperBlacks.rows"
 
3066                       <td md-cell>{{hopperBlack.ContactId}}</td>
 
3067                       <td md-cell>{{hopperBlack.phone}}</td>
 
3068                       <td md-cell class="actions"></td>
 
3072                       ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length"
 
3074                       <td md-cell colspan="4">
 
3075                         <div layout="row" layout-align="center center">
 
3077                             class="text-boxed-light"
 
3078                             translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE"
 
3079                             >No hopperblack available</span
 
3086               </md-table-container>
 
3087               <md-table-pagination
 
3088                 md-label="{page: '{{'MOTIONDIALER.PAGE' | translate}}:', rowsPerPage: '{{'MOTIONDIALER.ROWSPERPAGE' | translate}}:', of: '{{'MOTIONDIALER.OF' | translate}}'}"
 
3089                 md-limit="vm_dc.query.limit"
 
3090                 md-limit-options="[10, 15, 20, 50, 100, 250]"
 
3091                 md-page="vm_dc.query.page"
 
3092                 md-total="{{vm_dc.ivrCampaignHopperBlacks.count}}"
 
3093                 md-on-paginate="vm_dc.getIvrCampaignHopperBlacks"
 
3095               ></md-table-pagination>